package com.itcodai.controller.course13;

/**
 * 自定义拦截器的配置，继承WebMvcConfigurationSupport会导致Spring Boot对mvc的自动配置失效，但可以在前后端分离项目中
 * 如果需要让Spring Boot的自动配置生效，需要重写addResourceHandlers方法，将自动配置的路径放开
 *
 * @author c-fanqj
 * @date 2023/4/11
 * @apiNote 配置拦截器
 */
// 拦截静态资源，用在前后端分离的项目中，后台不需要访问静态资源
/*@Configuration
public class MyInterceptorConfig extends WebMvcConfigurationSupport {

    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        // addPathPatterns方法是添加要拦截的请求，这里我们拦截所有的请求
        registry.addInterceptor(new MyInterceptor())
                .addPathPatterns("/**");
        super.addInterceptors(registry);
    }

    // 用来指定静态资源不被拦截，否则继承WebMvcConfigurationSupport
    // 这种方式会导致静态资源无法直接访问
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/")
                .addResourceLocations("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/")
                .addResourceLocations("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/")
                .addResourceLocations("/templates/**")
                .addResourceLocations("classpath:/META-INF/resources/templates/");
        super.addResourceHandlers(registry);
    }

}*/

// 自定义拦截器的配置，实现WebMvcConfigurer不会导致静态资源被拦截
// 用在非前后端分离的项目中，因为需要读取一些图片、css、js文件
//@Configuration
/*public class MyInterceptorConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // addPathPatterns方法是添加要拦截的请求，这里我们拦截所有的请求
        registry.addInterceptor(new MyInterceptor())
                .addPathPatterns("/**");
    }
}*/



